package com.sxhalo.manage.map;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.HashSet;
import java.util.Set;

/**
 * Projects entity. @author MyEclipse Persistence Tools
 */

public class Projects implements java.io.Serializable {

	// Fields

	private Integer projectId;
	private Integer projectCompanyInternal;
	private String projectName;
	private String projectShortName;
	private SysUsers projectOwner;
	private String projectUrl;
	private String projectDemoUrl;
	private Timestamp projectStartDate;
	private Timestamp projectEndDate;
	private ProjectStatus projectStatus;
	private Short projectPercentComplete;
	private String projectColorIdentifier;
	private String projectDescription;
	private Long projectTargetBudget;
	private Long projectActualBudget;
	private Integer projectCreator;
	private String projectContacts;
	private ProjectPriority projectPriority;
	private ProjectType projectType;
	private Company company;
	private Department department;
	private Set<Task> tasks = new HashSet<Task>(0);
	// Constructors

	/** default constructor */
	public Projects() {
	}

	/** minimal constructor */
	public Projects(Company projectCompany, Integer projectCompanyInternal) {
		this.company = projectCompany;
		this.projectCompanyInternal = projectCompanyInternal;
	}

	/** full constructor */
	public Projects(Company projectCompany, Integer projectCompanyInternal,
			String projectName, String projectShortName, SysUsers projectOwner,
			String projectUrl, String projectDemoUrl,
			Timestamp projectStartDate, Timestamp projectEndDate,
			ProjectStatus projectStatus, Short projectPercentComplete,
			String projectColorIdentifier, String projectDescription,
			Long projectTargetBudget, Long projectActualBudget,
			Integer projectCreator, Department projectDepartments,
			String projectContacts, ProjectPriority projectPriority, ProjectType projectType) {
		this.company = projectCompany;
		this.projectCompanyInternal = projectCompanyInternal;
		this.projectName = projectName;
		this.projectShortName = projectShortName;
		this.projectOwner = projectOwner;
		this.projectUrl = projectUrl;
		this.projectDemoUrl = projectDemoUrl;
		this.projectStartDate = projectStartDate;
		this.projectEndDate = projectEndDate;
		this.projectStatus = projectStatus;
		this.projectPercentComplete = projectPercentComplete;
		this.projectColorIdentifier = projectColorIdentifier;
		this.projectDescription = projectDescription;
		this.projectTargetBudget = projectTargetBudget;
		this.projectActualBudget = projectActualBudget;
		this.projectCreator = projectCreator;
		this.department = projectDepartments;
		this.projectContacts = projectContacts;
		this.projectPriority = projectPriority;
		this.projectType = projectType;
	}

	// Property accessors

	public Integer getProjectId() {
		return this.projectId;
	}

	public void setProjectId(Integer projectId) {
		this.projectId = projectId;
	}

	public Integer getProjectCompanyInternal() {
		return this.projectCompanyInternal;
	}

	public void setProjectCompanyInternal(Integer projectCompanyInternal) {
		this.projectCompanyInternal = projectCompanyInternal;
	}

	public String getProjectName() {
		return this.projectName;
	}

	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}

	public String getProjectShortName() {
		return this.projectShortName;
	}

	public void setProjectShortName(String projectShortName) {
		this.projectShortName = projectShortName;
	}
	
	public SysUsers getProjectOwner() {
		return projectOwner;
	}

	public void setProjectOwner(SysUsers projectOwner) {
		this.projectOwner = projectOwner;
	}

	public String getProjectUrl() {
		return this.projectUrl;
	}

	public void setProjectUrl(String projectUrl) {
		this.projectUrl = projectUrl;
	}

	public String getProjectDemoUrl() {
		return this.projectDemoUrl;
	}

	public void setProjectDemoUrl(String projectDemoUrl) {
		this.projectDemoUrl = projectDemoUrl;
	}

	public String getStartDate() {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
		return sdf.format(this.projectStartDate);
	}

	public Timestamp getProjectStartDate() {
		return this.projectStartDate;
	}

	public void setProjectStartDate(Timestamp projectStartDate) {
		this.projectStartDate = projectStartDate;
	}
	
	public String getEndDate() {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
		return sdf.format(this.projectEndDate);
	}
	
	public Timestamp getProjectEndDate() {
		return this.projectEndDate;
	}

	public void setProjectEndDate(Timestamp projectEndDate) {
		this.projectEndDate = projectEndDate;
	}

	public Short getProjectPercentComplete() {
		return this.projectPercentComplete;
	}

	public void setProjectPercentComplete(Short projectPercentComplete) {
		this.projectPercentComplete = projectPercentComplete;
	}

	public String getProjectColorIdentifier() {
		return this.projectColorIdentifier;
	}

	public void setProjectColorIdentifier(String projectColorIdentifier) {
		this.projectColorIdentifier = projectColorIdentifier;
	}

	public String getProjectDescription() {
		return this.projectDescription;
	}

	public void setProjectDescription(String projectDescription) {
		this.projectDescription = projectDescription;
	}

	public Long getProjectTargetBudget() {
		return this.projectTargetBudget;
	}

	public void setProjectTargetBudget(Long projectTargetBudget) {
		this.projectTargetBudget = projectTargetBudget;
	}

	public Long getProjectActualBudget() {
		return this.projectActualBudget;
	}

	public void setProjectActualBudget(Long projectActualBudget) {
		this.projectActualBudget = projectActualBudget;
	}

	public Integer getProjectCreator() {
		return this.projectCreator;
	}

	public void setProjectCreator(Integer projectCreator) {
		this.projectCreator = projectCreator;
	}

	public String getProjectContacts() {
		return this.projectContacts;
	}

	public void setProjectContacts(String projectContacts) {
		this.projectContacts = projectContacts;
	}

	public ProjectStatus getProjectStatus() {
		return projectStatus;
	}

	public void setProjectStatus(ProjectStatus projectStatus) {
		this.projectStatus = projectStatus;
	}

	public ProjectPriority getProjectPriority() {
		return projectPriority;
	}

	public void setProjectPriority(ProjectPriority projectPriority) {
		this.projectPriority = projectPriority;
	}

	public ProjectType getProjectType() {
		return projectType;
	}

	public void setProjectType(ProjectType projectType) {
		this.projectType = projectType;
	}

	public Company getCompany() {
		return company;
	}

	public void setCompany(Company company) {
		this.company = company;
	}

	public Department getDepartment() {
		return department;
	}

	public void setDepartment(Department department) {
		this.department = department;
	}

	public Set<Task> getTasks() {
		return tasks;
	}

	public void setTasks(Set<Task> tasks) {
		this.tasks = tasks;
	}

}